package com.qianbao.finance.sync.modules.elasticsearch.service;


import com.qianbao.finance.sync.modules.elasticsearch.model.IndexTypeModel;
import com.qianbao.finance.sync.modules.elasticsearch.model.request.SyncByTableRequest;

public interface SyncService {
    /**
     * 通过database和table同步数据库
     *
     * @param request 请求参数
     * @return 后台同步进程执行成功与否
     */
    boolean syncByTable(SyncByTableRequest request);

    /**
     * 开启事务的读取mysql并插入到Elasticsearch中（读锁）
     */
    long batchInsertElasticsearch(SyncByTableRequest request, String primaryKey, long from, long to, IndexTypeModel indexTypeModel);


    /**
     * 通过database,table和主键key值同步数据库
     * @param request
     * @return
     */
    boolean syncUnique(SyncByTableRequest request);
}
